#ifndef _GSMDATA_H_
#define _GSMDATA_H_
#include <stdint.h>

class CellData {
public:
	bool isValid;
	uint16_t LAC;	// Location Area Code
	uint16_t cellId;// Cell ID
	uint8_t RSSI;

	//bool operator == (const CellData* other) const {
	bool equals(CellData* other) const {
		if (LAC != other->LAC) return false;
		if (cellId != other->cellId) return false;
		return true;
	}
};

class ExtendedCellData : public CellData {
public:
	uint16_t MCC;	// Mobile Country Code
	uint16_t MNC;	// Mobile Network Code
	uint16_t BCC;	// Base station Color Code
	int16_t dBm;
	uint8_t pwr;

	// bool operator == (const ExtendedCellData* other) const {
	bool equals(ExtendedCellData* other) const {
		if (MCC != other->MCC) return false;
		if (MNC != other->MNC) return false;
		return CellData::equals((CellData*)other); // call super operator.
	}
};

class PhonebookEntry {
public:
	char name[24];
	char number[16];
	uint8_t numberKind;
};

class SMS {
public:
	char text[161];
	char number[16];
	int index;
};

#endif
